# -*- coding: UTF-8 -*- #
"""
-------真正的勇士， 敢于直面惨淡的Warning、 敢于正视淋漓的Error-----
@author : 贾鹏博
@file : 4、charles 和  fillder.py
"""

"""
charles:  跨平台 ： windows linux  mac  都可以使用
    支持SSL代理
    支持流量控制
    支持重发网络请求，方便后端调式
    支持修改网络请求参数
    支持网络请求的截获并动态修改
    可以自动将 json 或 xml 数据格式化，方便查看
    下载地址：https://download.ceshiren.com/charles/
Fiddler:
    工具介绍
    界面简介
    抓取 HTTP 请求
    抓取 HTTPS 请求
    抓取移动端请求
    查看接口信息
    AutoResponder（mock）：拦截某一请求，并重定向到本地得资源，或者使用 Fiddler 的内置响应
                    用于调式服务端代码而无需修改服务器端的代码和配置
    断点
    弱网
Fiddler 是位于客户端和服务端的 HTTP 代理
也是目前最常用的 HTTP 抓包工具之一
功能：
    监控流量
    支持解密 HTTPS
    查看分析接口数据
    修改请求的数据
    修改服务器返回的数据
    设置断点
"""

"""
常用应用场景：
    解决移动端接口测试
    解决接口测试过程中检测传参错误问题
    mock 测试 ： 虚拟对象 mock  - 前后端分离开发。后端还没开发完，用 mock 模拟后端数据，测试前端
    
    
过滤：
    Filter
    鼠标右击 -> Focus
    
重发：
    简单重发： 鼠标右击 -> Repeat
    简单压力： 鼠标右键 -> Repeat Advanced

修改请求： （修改完后，点击 Execute）
    鼠标右键 -> Compose
    选择接口 ->  点击小钢笔图标
    
断点 - BreakPonit （篡改数据）  使用的比较少了（因为现在的接口都有超时时间）
    调整接口的参数信息
    1. 鼠标右键 -> BreakPonit
    2.Proxy - BreakPonit setting 设置断点
    3.确定接口信息，确定是请求断点还是响应断点
    4.重新发送请求 - 进入断点修改状态 - 修改内容 - 点击 Execute
    
弱网测试：
什么是弱网测试：（地铁，山区等）
    按照移动的特性，一般应用低于 3G，弱信号的 Wifi 可以划分为弱网
    弱网测试是健壮性测试的重要部分，对移动端测试必不可少
    弱网测试主要进行弱网状态下的功能测试，同时关注用户体验

如何弱网测试：Throtting (限制流量数据传输，从而模拟网络传输速度的快慢的情况)   --  只能降速
    1. charles 模拟 带宽，丢包，延迟
    Proxy -> Throttle setting -> Enable Throtting
        其中 Throttle preset ： 预置网络（包含3G，4G，兆数，KB 数-512k）
        Bandwidth(kbps): 带宽
        Round-trip latency(ms): 延迟时间
        
Mock测试: 模拟各种测试场景，修改数据
    
    Rewrite 用于修改的内容不多（改动比较小的数据）
        修改请求 - Request -  Modify Header(修改请求头)/Add Query Param（添加请求参数）
        修改响应 - Response - Body
        设置方法：
            Tools -> Rewrite
            1.勾选 Enable Rewrite
            2.点击下方 Add 按钮新建一个重写的规则
            3.在右侧编辑重写规则
            4.点击 ok 生效
    
    Map Local 本地数据  -   只修改响应体中的数据（修改多处）  （一次配置，后续多次使用）
        整个过程不需要连接服务端（将本地文件返回给前端）
        操作方法：
            准备本地接口响应数据  (选择原来的接口 -> save response)
            配置 Map Local 
                1.选择要进行 Map Local 的接口
                2.鼠标右键 - 选择 Map local 选项进入设置界面
                3.Map From 填写接口信息
                4.Map To 选择本地文件
            修改 Map Local 配置： Tools -> Map Local
    
    Map Remote - 环境切换（重定向场景）  -  改变请求发送的服务器地址
        百度转至豆瓣
        操作：
            1.选择接口。点击鼠标右键。选择 Map Remote 进入到设置页面
            2.设置重定向的接口信息
            3.Map From 原始的接口地址
            4.Map To 重定向后的接口地址
            5.点击 ok 生效
            修改配置 ： Tools -> Map Remote 找对应接口双击进入
                     
"""
